Extending the Capabilities of the Cray Programming Environment with Clang-LLVM Framework Integration

نویسندگان

  • Sadaf Alam
  • Benjamin Cumming
  • Ugo Varetto
چکیده

Recent developments in programming for multicore processors and accelerators using C++11, OpenCL and Domain Specific Languages (DSL) have prompted us to look into tools that offer compilers and both static and runtime analysis toolchains to complement the Cray Programming Environment capabilities. In this paper we report our preliminary experiences from using the CLang-LLVM framework on a hybrid Cray XC30 to perform tasks such as generating NVIDIA PTX code from C++ and OpenCL in a portable and flexible manner. Specifically we investigate how to overcome some of the limitations currently imposed by the standard tools such as the complete lack of C++11 support in CUDA C and outdated 32 bit versions of OpenCL. We also demonstrate how Clang-LLVM tools, for example, the static analyzer can bring additional capabilities to the Cray environment. Finally we describe how CLang-LLVM integrates with the standard Cray Programming Environment (PE), for instance, Cray MPI, perftools and libraries, and the steps required to properly install such tools on various Cray platforms. Keywords-Programming Environment (PE); Cray XC30; GPU; Clang; LLVM (key words); CUDA, OpenCL

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Polyhedral Extraction Tool

We present a new library for extracting a polyhedral model from C source. The library is based on clang, the LLVM C frontend, and isl, a library for manipulating quasi-affine sets and relations. The use of clang for parsing the C code brings advanced diagnostics and full support for C99. The use of isl allows for an easy construction and a powerful and compact representation of the polyhedral m...

متن کامل

Clad — Automatic Differentiation Using Clang and LLVM

Differentiation is ubiquitous in high energy physics, for instance in minimization algorithms and statistical analysis, in detector alignment and calibration, and in theory. Automatic differentiation (AD) avoids well-known limitations in round-offs and speed, which symbolic and numerical differentiation suffer from, by transforming the source code of functions. We will present how AD can be use...

متن کامل

C++ const and Immutability: An Empirical Study of Writes-Through-const (Artifact)

This artifact is based on ConstSanitizer, a dynamic program analysis tool that detects deep immutability violations through const qualifiers. Our tool instruments any code compiled by clang with the -fsanitizer=const flag. Our implementation includes both instrumentation of LLVM code and a runtime library to support our analysis. The provided package includes our tool and all experiments used i...

متن کامل

Paper: Togpu: Automatic Source Transformation from C++ to CUDA using Clang/LLVM

Parallel processing using GPUs provides substantial increases in algorithm performance across many disciplines including image processing. Serial algorithms are commonly translated to parallel CUDA or OpenCL algorithms. To perform this translation a user must first overcome various GPU development entry barriers. These obstacles change depending on the user but in general may include learning t...

متن کامل

Enhancing Passive Side-Channel Attack Resilience through Schedulability Analysis of Data-Dependency Graphs

In this work, we provide an evaluation of the fitness of a cipher implementation for automated, low overhead, Side Channel Attack (SCA) countermeasure insertion through instruction re-scheduling. This evaluation is automated by means of an extension to the Clang/LLVM compiler framework and is thus amenable to be performed on a generic cipher implementation in C.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2014